package com.gantang.gax.engine.model;

import lombok.Builder;

import java.util.List;

/**
 * 变量组对象
 *
 * @author gantang
 */
public class VariableGroup {
    //变量组编码 不为空
    private String code;
    //变量组名称 可为空
    private String name;
    //变量集合   不为空
    private List<Variable> variables;

    /**
     * 获取变量组编码
     *
     * @return 返回变量组编码
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置变量组编码
     *
     * @param code 变量组编码
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 设置变量组名称
     *
     * @return 返回变量组编码
     */
    public String getName() {
        return name;
    }

    /**
     * 设置变量组名称
     *
     * @param name 变量组名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取变量集合
     *
     * @return 返回变量集合
     */
    public List<Variable> getVariables() {
        return variables;
    }

    /**
     * 设置变量集合
     *
     * @param variables 变量集合
     */
    public void setVariables(List<Variable> variables) {
        this.variables = variables;
    }

    /**
     * 变量对象
     *
     * @author gantang
     */
    @Builder
    public static class Variable {
        //变量编码 不为空
        private String code;
        //变量名称 可为空
        private String name;
        //变量权重 默认0
        private Integer weight;

        /**
         * 获取变量编码
         *
         * @return 返回变量编码
         */
        public String getCode() {
            return code;
        }

        /**
         * 设置变量编码
         *
         * @param code 变量编码
         */
        public void setCode(String code) {
            this.code = code;
        }

        /**
         * 获取变量名称
         *
         * @return 返回变量名称
         */
        public String getName() {
            return name;
        }

        /**
         * 设置变量名称
         *
         * @param name 变量名称
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取变量权重
         *
         * @return 返回变量权重
         */
        public Integer getWeight() {
            return weight;
        }

        /**
         * 设置变量权重
         *
         * @param weight 变量权重
         */
        public void setWeight(Integer weight) {
            this.weight = weight;
        }
    }
}
